不寫code雖然就可以作出不錯的聊天機器人或服務,但即時性和變動性還是有server api即時資料比較好, 那就來寫code作服務和聊天機器人吧。
從Action on Google 的 對話流程圖來看,可以把Dialogflow想成大腦,Webhook當作手腳 ,當Dialogflow了解完語意後,要去透過Webhook來作事情,來完成回覆或完成事件例如:問天氣,開燈關燈等等。
如果完成了Webhook的動作,就要透過Fulfillment設定來把意圖和Webhook的動作連接起來,就可以完成有即時性和變動性的服務啦。
在Fulfillment內的設定提供兩種Webhook設定的方法,先來介紹Inline Editor,打開開關後,就可以直接在Fulfillment的Inline Editor內直接線上寫code,而且基本的node.js code已經寫好了是不是很方便。
'use strict';
const functions = require('firebase-functions');
const {WebhookClient} = require('dialogflow-fulfillment');
const {Card, Suggestion} = require('dialogflow-fulfillment');
process.env.DEBUG = 'dialogflow:debug'; // enables lib debugging statements
exports.dialogflowFirebaseFulfillment = functions.https.onRequest((request, response) => {
const agent = new WebhookClient({ request, response });
console.log('Dialogflow Request headers: ' + JSON.stringify(request.headers));
console.log('Dialogflow Request body: ' + JSON.stringify(request.body));
function welcome(agent) {
agent.add(`Welcome to my agent!`);
}
function fallback(agent) {
agent.add(`I didn't understand`);
agent.add(`I'm sorry, can you try again?`);
}
let intentMap = new Map();
intentMap.set('Default Welcome Intent', welcome);
intentMap.set('Default Fallback Intent', fallback);
agent.handleRequest(intentMap);
});
打開Inline Editor,是會在cloud function佈版,要先前往Google Cloud Console設定帳單,才可以使用哦。
參考:
https://codelabs.developers.google.com/codelabs/actions-1/#0
打開Inline Editor,是會在cloud function佈版,要先前往Google Cloud Console設定帳單,才可以使用哦。
所以是要收費的嗎?